The present invention relates generally to the field of memory management, and more particularly to cache analysis using garbage collection.
A managed runtime environment is a platform for computer programming that manages specific tasks such as heap management, security, class loading, garbage collection, and memory allocation. Managed runtime environment works closely with the operating system and architecture, allowing programmers to focus efforts on logic targeting a specific problem, instead of all of the tangential tasks needed by the program. Due to the managed runtime environment's ability to handle tangential tasks, such as memory allocation, programmers need not include code for tangential tasks when developing new programs.
A managed runtime program, running in the managed runtime environment, is able to write data to the heap. The heap is an allocated pool of memory that can be utilized by the managed runtime environment for memory storage. The heap contains a cache, to which the managed runtime program can write data objects. As the heap, and consequently the cache, has a limited memory capacity, the heap must be cleaned periodically. The cleaning process of the heap is called garbage collection.
Garbage collection (GC) is a process used by computer programs to manage the heap memory. The GC finds all objects in the heap, determines which objects are still in use (live), removes the unused objects, and reduces fragmentation of the heap. How frequently the GC runs and the order in which the GC steps are completed are determined by the GC policy, which is established within the managed runtime environment.